﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class ЗначенияПоказателейСхемМотивацииДополнительный
	{
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ ФОРМЫ СПИСКА

		public object РежимВводаПоЦФО(/*мРежимВводаПоказателей*/)
		{
			return null;
		}
		// Устанавливает свертку панелей и видимость реквизитов формы в зависимости от выбранной организационной структуры
		//

		public void ВидОрганизационнойСтруктурыПредприятияПриИзменении(/*мРежимВводаПоказателей, ЭлементыФормы*/)
		{
			//РежимВводаПоЦФО = РежимВводаПоЦФО(мРежимВводаПоказателей);
			//ИспользоватьУправленческийУчетЗарплаты = глЗначениеПеременной("глИспользоватьУправленческийУчетЗарплаты");
			if(true/*ИспользоватьУправленческийУчетЗарплаты*/)
			{
				//ЭлементыФормы.ДействияФормы.Кнопки.ПорядокФормированияСМ.Кнопки.ПоЦФО.Пометка			= РежимВводаПоЦФО;
				//ЭлементыФормы.ДействияФормы.Кнопки.ПорядокФормированияСМ.Кнопки.ПоОрганизациям.Пометка	= Не РежимВводаПоЦФО;
			}
			//ЭлементыФормы.ПанельОрганизации.Свертка = ?(РежимВводаПоЦФО, РежимСверткиЭлементаУправления.Верх, РежимСверткиЭлементаУправления.Нет);
		}
		// ВидОрганизационнойСтруктурыПредприятияПриИзменении

		public void ПереключитьРежимВводаПоказателейПоОрганизациям(/*мРежимВводаПоказателей, мОрганизация, Форма, Отбор*/)
		{
			//мРежимВводаПоказателей = Перечисления.ВидыОрганизационнойСтруктурыПредприятия.ПоСтруктуреЮридическихЛиц;
			if(true/*Не ЗначениеЗаполнено(Отбор.Организация.Значение)*/)
			{
				if(true/*мОрганизация = Неопределено*/)
				{
					/*// заполним организацию
*/
					//РаботаСДиалогамиЗК.ЗаполнениеОтбораПоОрганизацииПоУмолчанию(Форма, Отбор.Организация, Форма.ЭлементыФормы.Организация, Неопределено, Ложь, глЗначениеПеременной("глТекущийПользователь"));
				}
			}
			//Отбор.Организация.ВидСравнения = ?(ЗначениеЗаполнено(Отбор.Организация.Значение), ВидСравнения.Равно, ВидСравнения.НеРавно);
			//ВидОрганизационнойСтруктурыПредприятияПриИзменении(мРежимВводаПоказателей, Форма.ЭлементыФормы);
		}

		public void ПереключитьРежимВводаПоказателейПоЦФО(/*мРежимВводаПоказателей, мОрганизация, Форма, Отбор*/)
		{
			//мОрганизация = Отбор.Организация.Значение;
			//Отбор.Организация.Установить(Справочники.Организации.ПустаяСсылка());
			//мРежимВводаПоказателей = Перечисления.ВидыОрганизационнойСтруктурыПредприятия.ПоЦентрамОтветственности;
			//ВидОрганизационнойСтруктурыПредприятияПриИзменении(мРежимВводаПоказателей, Форма.ЭлементыФормы);
		}
		// Процедура получает набор исходных значений показателей,
		//  определяет курсы валют и выполняет пересчет значений в валюту управленческого учета
		//
		// Параметры:
		//  ИсходныеЗначенияПоказателей - таблица значений, возвращаемая формой ввода значений показателей
		//

		public void ПересчитатьВалютныеЗначенияПоказателей(/*ИсходныеЗначенияПоказателей*/)
		{
			//Запрос = Новый Запрос;
			//Запрос.УстановитьПараметр("ИсходныеЗначенияПоказателей", ИсходныеЗначенияПоказателей);
			/*Запрос.Текст = 
	"ВЫБРАТЬ
	|	ИсходныеЗначенияПоказателей.Сотрудник КАК Сотрудник,
	|	ИсходныеЗначенияПоказателей.Показатель КАК Показатель,
	|	ИсходныеЗначенияПоказателей.ПериодДействия КАК ПериодДействия,
	|	ИсходныеЗначенияПоказателей.Валюта КАК ВалютаПоказателя,
	|	ИсходныеЗначенияПоказателей.Значение КАК Значение
	|ПОМЕСТИТЬ ИсходныеЗначенияПоказателей
	|ИЗ
	|	&ИсходныеЗначенияПоказателей КАК ИсходныеЗначенияПоказателей
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	КурсыВалютДляРасчетовСПерсоналом.Валюта КАК Валюта,
	|	КурсыВалютДляРасчетовСПерсоналом.Курс,
	|	КурсыВалютДляРасчетовСПерсоналом.Кратность
	|ПОМЕСТИТЬ КурсыВалют
	|ИЗ
	|	РегистрСведений.КурсыВалютДляРасчетовСПерсоналом КАК КурсыВалютДляРасчетовСПерсоналом
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеЗначенияПоказателей КАК ИсходныеЗначенияПоказателей
	|		ПО КурсыВалютДляРасчетовСПерсоналом.Период = ИсходныеЗначенияПоказателей.ПериодДействия
	|
	|ОБЪЕДИНИТЬ
	|
	|ВЫБРАТЬ
	|	Константы.ВалютаРегламентированногоУчета,
	|	1,
	|	1
	|ИЗ
	|	Константы КАК Константы
	|
	|ИНДЕКСИРОВАТЬ ПО
	|	Валюта
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	ПоказателиВидовРасчета.Показатель,
	|	ПоказателиВидовРасчета.ВалютаПоказателя,
	|	ВЫБОР
	|		КОГДА ПоказателиВидовРасчета.ВалютаПоказателя = ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)
	|				ИЛИ ПоказателиВидовРасчета.ВалютаПоказателя = Константы.ВалютаУправленческогоУчета
	|			ТОГДА ЛОЖЬ
	|		ИНАЧЕ ИСТИНА
	|	КОНЕЦ КАК ВводВалютныхЗначений,
	|	ВЫБОР
	|		КОГДА ПоказателиВидовРасчета.ВалютаПоказателя = ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)
	|				ИЛИ ПоказателиВидовРасчета.ВалютаПоказателя = Константы.ВалютаУправленческогоУчета
	|			ТОГДА 1
	|		ИНАЧЕ КурсыВалют.Курс / КурсВалютыУпрУчета.Курс
	|	КОНЕЦ КАК Курс,
	|	ВЫБОР
	|		КОГДА ПоказателиВидовРасчета.ВалютаПоказателя = ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)
	|				ИЛИ ПоказателиВидовРасчета.ВалютаПоказателя = Константы.ВалютаУправленческогоУчета
	|			ТОГДА 1
	|		ИНАЧЕ КурсыВалют.Кратность / КурсВалютыУпрУчета.Кратность
	|	КОНЕЦ КАК Кратность
	|ПОМЕСТИТЬ КурсыВалютПоказателей
	|ИЗ
	|	ИсходныеЗначенияПоказателей КАК ПоказателиВидовРасчета
	|		ЛЕВОЕ СОЕДИНЕНИЕ КурсыВалют КАК КурсыВалют
	|		ПО ПоказателиВидовРасчета.ВалютаПоказателя = КурсыВалют.Валюта,
	|	Константы КАК Константы
	|		ЛЕВОЕ СОЕДИНЕНИЕ КурсыВалют КАК КурсВалютыУпрУчета
	|		ПО Константы.ВалютаУправленческогоУчета = КурсВалютыУпрУчета.Валюта
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ИсходныеЗначенияПоказателей.Сотрудник,
	|	ИсходныеЗначенияПоказателей.Показатель,
	|	ИсходныеЗначенияПоказателей.ПериодДействия,
	|	ИсходныеЗначенияПоказателей.ВалютаПоказателя,
	|	КурсыВалютПоказателей.ВводВалютныхЗначений,
	|	ВЫБОР
	|		КОГДА КурсыВалютПоказателей.ВводВалютныхЗначений
	|			ТОГДА ВЫБОР
	|					КОГДА КурсыВалютПоказателей.Курс ЕСТЬ NULL 
	|						ТОГДА 0
	|					ИНАЧЕ ИсходныеЗначенияПоказателей.Значение * КурсыВалютПоказателей.Курс / КурсыВалютПоказателей.Кратность
	|				КОНЕЦ
	|		ИНАЧЕ ИсходныеЗначенияПоказателей.Значение
	|	КОНЕЦ КАК Значение,
	|	ИсходныеЗначенияПоказателей.Значение КАК ЗначениеВалюта,
	|	ВЫБОР
	|		КОГДА КурсыВалютПоказателей.Курс ЕСТЬ NULL 
	|			ТОГДА КурсыВалютПоказателей.ВалютаПоказателя
	|		ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)
	|	КОНЕЦ КАК НеЗаданКурсВалюты
	|ИЗ
	|	ИсходныеЗначенияПоказателей КАК ИсходныеЗначенияПоказателей
	|		ЛЕВОЕ СОЕДИНЕНИЕ КурсыВалютПоказателей КАК КурсыВалютПоказателей
	|		ПО ИсходныеЗначенияПоказателей.ВалютаПоказателя = КурсыВалютПоказателей.ВалютаПоказателя";*/
			//ИсходныеЗначенияПоказателей = Запрос.Выполнить().Выгрузить();
		}
	}
}
